<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        // document.write('hello world')
    </script>
    <script src="test.js"></script>
</head>
<body>


<script>
    var test = '1231244142'; //str
    var test1 = 123124; //number
    var test3 = true;
    var test2 = null;//一个js运行环境下面只有一个null
    var test4 = undefined;

    //对象 object
    var test6 = {
        name:'huzhiqiang',
        age:29,
    };
    var test7 = {
        name:'huzhiqiang',
        age:29,
    };
    //构造函数申明 类似于python 的 类
    //构造函数
    function Person(){
        this.name = 'huzhiqiang';
        this.age = 29;
    }
    // Person函数类型
    // person1 对象 oject
    var person1 = new Person();
    var person2 = new Person();

    //function类型
    var func = function(){
        this.name = 'huzhiqiang';
        this.age = 29;
        return 5
    };
    //
    //
    function Person() {
        this.name=1
    }
    //
    function plus(){
        return 6
    }

    //function 有两个作用
    //1.构造函数(python class)
    // function Person() {
    //     this.name = 'xxx';
    // }
    //
    // person1 = new Person();
    // var person2 = {
    //     name:'xxxx',
    // };
    //2. 函数作用
    // function test1(name,test){
    //     return 5
    // }
    // test1()

    // 5 ==='5'? console.log('5等于5'):console.log('5不等于5');

    // if(5 ==='5'){
    //     console.log('5等于5');
    // }else{
    //     console.log('5不等于5');
    // }


    //多重判断
    //
    // let age = 45;
    // switch (age){
    //     case 28:
    //         console.log('你28岁啦');
    //         break;
    //     case 29:
    //         console.log('你29岁啦');
    //         break;
    //     default:
    //         console.log('不知道你多少岁');
    // }
    //
    // let n = 11;
    // for (var i = 1; i <= n; i++) {
    //     var star_num = 2*i -1;
    //     var space_num = n -i;
    //     for(let j=1;j<=space_num;j++){
    //         document.write('&nbsp');
    //     }
    //     for(let k=1;k<=star_num;k++){
    //         document.write('*');
    //     }
    //     document.write('<br>')
    // }
    //
    // var i = 9;
    // while(i<n){
    //     i++;
    //     document.write('hello');
    // }
    //
    // do{
    //     document.write('hello');
    // }while (i<5);

    //typeof 数组对象
    //构造函数
    // function Company() {
    //     this.name='asdf';
    //     this.test = 'asdf';
    // }

    // function fun(){
    //     return 5;
    // }

    // function fun1(name,age){
    //     console.log('adsf');
    //     return name;
    // }

    //1++100
    // '100' - 0 = 100
    // 100 + 'asdf' = '100asdf'
    // n + f(n-1)

    // f(n) = n + f(n-1)
    // function plus(n){
    //     n = n - 0;
    //     if(n===1){
    //         return 1;
    //     }else{
    //         return n+ plus(n-1);
    //     }
    // }

    //斐波拉契数

    // 1 1 2 3 5 8 13 21
    //
    // if(n ==1 || n ==2){
    //     return 1;
    // }
    //
    // f(n) = f(n-1) + f(n-2)

    // function fab(n) {
    //     n = n - 0;
    //     if(n ===1 || n === 2){
    //         return 1
    //     }else{
    //         return fab(n-1) + fab(n -2);
    //     }
    // }
    // let res= fab(20);
    // console.log(res)

    //汉罗塔
    function hano(n,start,middle,to) {
        if(n === 1){
            document.write('move--->'+start+'<---to--->'+to+'<br>')
        }else{
            hano(n-1,start,to,middle);
            hano(1,start,middle,to);
            hano(n-1,middle,start,to);
        }
    }
    hano(4,'a','b','c')


    //字面量
    // var person1 = {
    //     name:'test',
    //     age:29,
    // };
    //构造 申明
    // function Person() {
    //     this.name = 'test';
    //     this.age = 29;
    //     this.money = '123123';
    //
    //     // //默认的会return this//this是一个对象
    //     // return this;
    // }

    // var person2 = new Person();
    // document.write(person2.name)


</script>
</body>
</html>